//关键字
//static
#include <stdio.h>
void test() //void不需要任何返回
{
    static int a=1;//a的值保留，下次在这次基础上运算。 static修饰局部变量的时候，局部变量出了作用域不销毁，本质上改变了变量的存储位置，影响了变量的生命周期：生命周期变长，和程序生命周期一样。
    a++;//a的位置未变化
    printf("%d\n",a);//输出：2 3 4 5 6 7 8 9 10 11   若 int a=1; 输出：2 2 2 2 2 2 2 2 2 2，每次a进作用域创建出作用域就销毁
    printf("%d\n",&a);
}
int main()
{
    int i=0;
    while(i<10)
    {
        test();
        i++;
        printf("%d\n",i);  //输出：1 2 3 4 5 6 7 8 9 10 无论有没有static这个输出都一样，因为i和a的指针不一样，a是形参。
        printf("%d\n",&i);
    }
    return 0;
}
//static修饰全局变量的时候，这个全局变量的外部链接属性就变成了内部链接属性，其他源文件（.c）就不能再使用这个全局变量了
//函数具有外部链接属性，static修饰函数跟修饰全局变量类似